MdVerbs.md.php

<?php
/**
 * No params... uses $this to access scrawl
 */

//ob_start();
$ext = $this->mdverb_ext;
$ast_verbs = new Tlf\Scrawl\Ext\MdVerb\Ast($this);

$verbs = [];
ob_start();
foreach ($ext->handlers as $verb=>$callable){

    if ($verb == 'see_file')continue;

    $object = $callable[0];
    $method_name = $callable[1];
    $class = get_class($object);
    $ast = $this->get_class_ast($class);

    $method_ast = $ast_verbs->get_ast('class.'.$class.'.methods.'.$method_name);

    
    $description = trim($method_ast['docblock']['description']);

    $usage = '';
    $output = '';

    $attributes = $method_ast['docblock']['attribute'];
    foreach ($attributes as $attr){
        if ($attr['name'] == 'usage'){
            $usage = "\n    - Usage: ".$attr['description'].'  ';
        } else if ($attr['name'] == 'output'){
            $output = "\n    - Output: ".$attr['description'].'  ';
        }
    }

    $verbs[$verb] = $description."  ".$usage.$output;

    continue;
}
ob_get_clean();

foreach ($verbs as $verb=>$description){
    echo "- `@$verb()`: $description  \n";
}